package com.jm.common.tool.function;

import com.jm.common.tool.exception.ErrorException;
import org.apache.commons.lang3.StringUtils;

/**
 * @author kong
 */
public class ThrowTool {
    private ThrowTool() {
    }

    /**
     * 参数为true时抛出异常
     */
    public static ThrowExceptionFunction isTrue(boolean b) {
        return (errorMsg) -> {
            if (b) {
                throw new ErrorException(errorMsg);
            }
        };
    }

    /**
     * 参数为true或false时，分别进行不同的操作
     */
    public static BranchHandle isTrueOrFalse(boolean b) {
        return (trueHandle, falseHandle) -> {
            if (b) {
                trueHandle.run();
            } else {
                falseHandle.run();
            }
        };
    }

    /**
     * 参数为true或false时，分别进行不同的操作
     */
    public static PresentOrElseHandler<?> isBlankOrNoBlank(String s) {
        return (consumer, runnable) -> {
            if (StringUtils.isBlank(s)) {
                runnable.run();
            } else {
                consumer.accept(s);

            }
        };
    }

//    public static void main(String[] args) {
//        isTrue(true).throwMsg("error");
//        isTrueOrFalse(true).trueOrFalseHandle(() -> {
//            System.out.println("true");
//        }, () -> {
//            System.out.println("false");
//        });
//        isBlankOrNoBlank("").presentOrElseHandle(System.out::println, () -> {
//            System.out.println("参数为空");
//        });
//    }
}
